package com.shrct.businessprocess.purchase;

import com.shrct.businessprocess.organization.RCEmployee;
import com.shrct.businessprocess.purchase.RCBasePurchaseOrder;
import com.shrct.businessprocess.purchase.impl.RCPurchaseOrderProcessImpl;
import com.shrct.businessprocess.purchase.proxy.RCPurchaseOrderProcessProxy;
import edu.fudan.langlab.domain.workflow.BusinessProcess;
import edu.fudan.mylang.pf.EntityImplementation;

@EntityImplementation(implementBy = RCPurchaseOrderProcessImpl.class)
public interface RCPurchaseOrderProcess extends BusinessProcess {
  public abstract void start(final RCBasePurchaseOrder purchaseOrder);
  
  public abstract void BusinessManModify_cancel(final String comment);
  
  public abstract void BusinessManModify_modified(final String comment);
  
  public abstract void PurchaseManagerAudit_reject(final String comment);
  
  public abstract void PurchaseManagerAudit_agree(final String comment);
  
  public abstract RCBasePurchaseOrder getPurchaseOrder();
  
  public abstract RCPurchaseOrderProcess setPurchaseOrder(final RCBasePurchaseOrder purchaseOrder);
  
  public abstract RCEmployee getStarter();
  
  public abstract RCPurchaseOrderProcess setStarter(final RCEmployee starter);
  
  public abstract RCPurchaseOrderProcessProxy toProxy();
}
